<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.jaggersoft.com/csharp_grammar.html -->
<?xml version="1.0"?><HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Hyperlinked ECMA C Sharp Grammar</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="Jon Jagger" name=author>
<META content="MSHTML 6.00.2900.2722" name=GENERATOR>
<META content="Hyperlinked ECMA C Sharp Grammar" name=description><LINK 
href="Hyperlinked ECMA C Sharp Grammar.files/grammar.css" rel=stylesheet></HEAD>
<BODY>
<DIV align=right><I>Jon Jagger</I></DIV>
<DIV align=right><A 
href="mailto:jon@jaggersoft.com">jon@jaggersoft.com</A></DIV>
<H1 class=grammar>ECMA-334 C# Grammar</H1>This HTML file was generated directly 
from the C# grammar in the ECMA-334 document (March 2003) using a simple PERL 
script. <PRE><A href="http://www.jaggersoft.com/csharp_grammar.html#1 Lexical grammar">A.1 Lexical grammar</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.1 Line terminators">.1 Line terminators</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.2 White space">.2 White space</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.3 Comments">.3 Comments</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.4 Tokens">.4 Tokens</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.5 Unicode character escape sequences">.5 Unicode character escape sequences</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.6 Identifiers">.6 Identifiers</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.7 Keywords">.7 Keywords</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.8 Literals">.8 Literals</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.9 Operators and punctuators">.9 Operators and punctuators</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#1.10 Pre-processing directives">.10 Pre-processing directives</A>
<A href="http://www.jaggersoft.com/csharp_grammar.html#2 Syntactic grammar">A.2 Syntactic grammar</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.1 Basic concepts">.1 Basic concepts</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.2 Types">.2 Types</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.3 Variables">.3 Variables</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.4 Expressions">.4 Expressions</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.5 Statements">.5 Statements</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.6 Classes">.6 Classes</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.7 Structs">.7 Structs</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.8 Arrays">.8 Arrays</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.9 Interfaces">.9 Interfaces</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.10 Enums">.10 Enums</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.11 Delegates">.11 Delegates</A>
    <A href="http://www.jaggersoft.com/csharp_grammar.html#2.12 Attributes">.12 Attributes</A>
<A href="http://www.jaggersoft.com/csharp_grammar.html#3 Grammar extensions for unsafe code">A.3 Grammar extensions for unsafe code</A>

<HR SIZE=3><A name="1 Lexical grammar">// A.1 Lexical grammar</A>

<A name=input>input</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-section">input-section</A><SUB>opt</SUB> 

<A name=input-section>input-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-section-part">input-section-part</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-section">input-section</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#input-section-part">input-section-part</A> 

<A name=input-section-part>input-section-part</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-elements">input-elements</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line">new-line</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-directive">pp-directive</A> 

<A name=input-elements>input-elements</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-element">input-element</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-elements">input-elements</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#input-element">input-element</A> 

<A name=input-element>input-element</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#comment">comment</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#token">token</A> 

<HR SIZE=3><A name="1.1 Line terminators">// A.1.1 Line terminators</A>

<A name=new-line>new-line</A>::
    Carriage return character (U+000D) 
    Line feed character (U+000A) 
    Carriage return character (U+000D) followed by line feed character (U+000A) 
    Next line character (U+0085) 
    Line separator character (U+2028) 
    Paragraph separator character (U+2029) 

<HR SIZE=3><A name="1.2 White space">// A.1.2 White space</A>

<A name=whitespace>whitespace</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace-characters">whitespace-characters</A> 

<A name=whitespace-characters>whitespace-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace-character">whitespace-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace-characters">whitespace-characters</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace-character">whitespace-character</A> 

<A name=whitespace-character>whitespace-character</A>::
    Any character with Unicode class Zs 
    Horizontal tab character (U+0009) 
    Vertical tab character (U+000B) 
    Form feed character (U+000C) 

<HR SIZE=3><A name="1.3 Comments">// A.1.3 Comments</A>

<A name=comment>comment</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#single-line-comment">single-line-comment</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delimited-comment">delimited-comment</A> 

<A name=single-line-comment>single-line-comment</A>::
    // <A href="http://www.jaggersoft.com/csharp_grammar.html#input-characters">input-characters</A><SUB>opt</SUB> 

<A name=input-characters>input-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-character">input-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-characters">input-characters</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#input-character">input-character</A> 

<A name=input-character>input-character</A>::
    Any Unicode character except a <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line-character">new-line-character</A> 

<A name=new-line-character>new-line-character</A>::
    Carriage return character (U+000D) 
    Line feed character (U+000A) 
    Next line character (U+0085) 
    Line separator character (U+2028) 
    Paragraph separator character (U+2029) 

<A name=delimited-comment>delimited-comment</A>::
    /* <A href="http://www.jaggersoft.com/csharp_grammar.html#delimited-comment-text">delimited-comment-text</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#asterisks">asterisks</A> / 

<A name=delimited-comment-text>delimited-comment-text</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delimited-comment-section">delimited-comment-section</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delimited-comment-text">delimited-comment-text</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#delimited-comment-section">delimited-comment-section</A> 

<A name=delimited-comment-section>delimited-comment-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#not-asterisk">not-asterisk</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#asterisks">asterisks</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#not-slash">not-slash</A> 

<A name=asterisks>asterisks</A>::
    * 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#asterisks">asterisks</A> * 

<A name=not-asterisk>not-asterisk</A>::
    Any Unicode character except * 

<A name=not-slash>not-slash</A>::
    Any Unicode character except / 

<HR SIZE=3><A name="1.4 Tokens">// A.1.4 Tokens</A>

<A name=token>token</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#keyword">keyword</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#integer-literal">integer-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#real-literal">real-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#character-literal">character-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#string-literal">string-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-or-punctuator">operator-or-punctuator</A> 

<HR SIZE=3><A name="1.5 Unicode character escape sequences">// A.1.5 Unicode character escape sequences</A>

<A name=unicode-character-escape-sequence>unicode-character-escape-sequence</A>::
    \u <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> 
    \U <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> 

<HR SIZE=3><A name="1.6 Identifiers">// A.1.6 Identifiers</A>

<A name=identifier>identifier</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#available-identifier">available-identifier</A> 
    @ <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-or-keyword">identifier-or-keyword</A> 

<A name=available-identifier>available-identifier</A>::
    An <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-or-keyword">identifier-or-keyword</A> that is not a <A href="http://www.jaggersoft.com/csharp_grammar.html#keyword">keyword</A> 

<A name=identifier-or-keyword>identifier-or-keyword</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-start-character">identifier-start-character</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-part-characters">identifier-part-characters</A><SUB>opt</SUB> 

<A name=identifier-start-character>identifier-start-character</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#letter-character">letter-character</A> 
    _ (the underscore character) 

<A name=identifier-part-characters>identifier-part-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-part-character">identifier-part-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-part-characters">identifier-part-characters</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-part-character">identifier-part-character</A> 

<A name=identifier-part-character>identifier-part-character</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#letter-character">letter-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digit-character">decimal-digit-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#connecting-character">connecting-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#combining-character">combining-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#formatting-character">formatting-character</A> 

<A name=letter-character>letter-character</A>::
    A Unicode character of classes Lu, Ll, Lt, Lm, Lo, or Nl 
    A <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> representing a character of classes Lu, Ll, Lt, Lm, Lo, or Nl 

<A name=combining-character>combining-character</A>::
    A Unicode character of classes Mn or Mc 
    A <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> representing a character of classes Mn or Mc 

<A name=decimal-digit-character>decimal-digit-character</A>::
    A Unicode character of the class Nd 
    A <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> representing a character of the class Nd 

<A name=connecting-character>connecting-character</A>::
    A Unicode character of the class Pc 
    A <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> representing a character of the class Pc 

<A name=formatting-character>formatting-character</A>::
    A Unicode character of the class Cf 
    A <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> representing a character of the class Cf 

<HR SIZE=3><A name="1.7 Keywords">// A.1.7 Keywords</A>

<A name=keyword>keyword</A>:: one of
    <SPAN class=keyword>abstract</SPAN> <SPAN class=keyword>as</SPAN> <SPAN class=keyword>base</SPAN> <SPAN class=keyword>bool</SPAN> <SPAN class=keyword>break</SPAN> 
    <SPAN class=keyword>byte</SPAN> <SPAN class=keyword>case</SPAN> <SPAN class=keyword>catch</SPAN> <SPAN class=keyword>char</SPAN> <SPAN class=keyword>checked</SPAN> 
    <SPAN class=keyword>class</SPAN> <SPAN class=keyword>const</SPAN> <SPAN class=keyword>continue</SPAN> <SPAN class=keyword>decimal</SPAN> <SPAN class=keyword>default</SPAN> 
    <SPAN class=keyword>delegate</SPAN> <SPAN class=keyword>do</SPAN> <SPAN class=keyword>double</SPAN> <SPAN class=keyword>else</SPAN> <SPAN class=keyword>enum</SPAN> 
    <SPAN class=keyword>event</SPAN> <SPAN class=keyword>explicit</SPAN> <SPAN class=keyword>extern</SPAN> <SPAN class=keyword>false</SPAN> <SPAN class=keyword>finally</SPAN> 
    <SPAN class=keyword>fixed</SPAN> <SPAN class=keyword>float</SPAN> <SPAN class=keyword>for</SPAN> <SPAN class=keyword>foreach</SPAN> <SPAN class=keyword>goto</SPAN> 
    <SPAN class=keyword>if</SPAN> <SPAN class=keyword>implicit</SPAN> <SPAN class=keyword>in</SPAN> <SPAN class=keyword>int</SPAN> <SPAN class=keyword>interface</SPAN> 
    <SPAN class=keyword>internal</SPAN> <SPAN class=keyword>is</SPAN> <SPAN class=keyword>lock</SPAN> <SPAN class=keyword>long</SPAN> <SPAN class=keyword>namespace</SPAN> 
    <SPAN class=keyword>new</SPAN> <SPAN class=keyword>null</SPAN> <SPAN class=keyword>object</SPAN> <SPAN class=keyword>operator</SPAN> <SPAN class=keyword>out</SPAN> 
    <SPAN class=keyword>override</SPAN> <SPAN class=keyword>params</SPAN> <SPAN class=keyword>private</SPAN> <SPAN class=keyword>protected</SPAN> <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>readonly</SPAN> <SPAN class=keyword>ref</SPAN> <SPAN class=keyword>return</SPAN> <SPAN class=keyword>sbyte</SPAN> <SPAN class=keyword>sealed</SPAN> 
    <SPAN class=keyword>short</SPAN> <SPAN class=keyword>sizeof</SPAN> <SPAN class=keyword>stackalloc</SPAN> <SPAN class=keyword>static</SPAN> <SPAN class=keyword>string</SPAN> 
    <SPAN class=keyword>struct</SPAN> <SPAN class=keyword>switch</SPAN> <SPAN class=keyword>this</SPAN> <SPAN class=keyword>throw</SPAN> <SPAN class=keyword>true</SPAN> 
    <SPAN class=keyword>try</SPAN> <SPAN class=keyword>typeof</SPAN> <SPAN class=keyword>uint</SPAN> <SPAN class=keyword>ulong</SPAN> <SPAN class=keyword>unchecked</SPAN> 
    <SPAN class=keyword>unsafe</SPAN> <SPAN class=keyword>ushort</SPAN> <SPAN class=keyword>using</SPAN> <SPAN class=keyword>virtual</SPAN> <SPAN class=keyword>void</SPAN> 
    <SPAN class=keyword>volatile</SPAN> <SPAN class=keyword>while</SPAN> 

<HR SIZE=3><A name="1.8 Literals">// A.1.8 Literals</A>

<A name=literal>literal</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#boolean-literal">boolean-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#integer-literal">integer-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#real-literal">real-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#character-literal">character-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#string-literal">string-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#null-literal">null-literal</A> 

<A name=boolean-literal>boolean-literal</A>::
    <SPAN class=keyword>true</SPAN> 
    <SPAN class=keyword>false</SPAN> 

<A name=integer-literal>integer-literal</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-integer-literal">decimal-integer-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#hexadecimal-integer-literal">hexadecimal-integer-literal</A> 

<A name=decimal-integer-literal>decimal-integer-literal</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#integer-type-suffix">integer-type-suffix</A><SUB>opt</SUB> 

<A name=decimal-digits>decimal-digits</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digit">decimal-digit</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digit">decimal-digit</A> 

<A name=decimal-digit>decimal-digit</A>:: one of
    0 1 2 3 4 5 6 7 8 9 

<A name=integer-type-suffix>integer-type-suffix</A>:: one of
    U u L l UL Ul uL ul LU Lu lU lu 

<A name=hexadecimal-integer-literal>hexadecimal-integer-literal</A>::
    0x <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digits">hex-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#integer-type-suffix">integer-type-suffix</A><SUB>opt</SUB> 
    0X <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digits">hex-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#integer-type-suffix">integer-type-suffix</A><SUB>opt</SUB> 

<A name=hex-digits>hex-digits</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digits">hex-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> 

<A name=hex-digit>hex-digit</A>:: one of
    0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f 

<A name=real-literal>real-literal</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#exponent-part">exponent-part</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#real-type-suffix">real-type-suffix</A><SUB>opt</SUB> 
    . <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#exponent-part">exponent-part</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#real-type-suffix">real-type-suffix</A><SUB>opt</SUB> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#exponent-part">exponent-part</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#real-type-suffix">real-type-suffix</A><SUB>opt</SUB> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#real-type-suffix">real-type-suffix</A> 

<A name=exponent-part>exponent-part</A>::
    e <A href="http://www.jaggersoft.com/csharp_grammar.html#sign">sign</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> 
    E <A href="http://www.jaggersoft.com/csharp_grammar.html#sign">sign</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> 

<A name=sign>sign</A>:: one of
    + - 

<A name=real-type-suffix>real-type-suffix</A>:: one of
    F f D d M m 

<A name=character-literal>character-literal</A>::
    ' <A href="http://www.jaggersoft.com/csharp_grammar.html#character">character</A> ' 

<A name=character>character</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#single-character">single-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#simple-escape-sequence">simple-escape-sequence</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#hexadecimal-escape-sequence">hexadecimal-escape-sequence</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> 

<A name=single-character>single-character</A>::
    Any character except ' (U+0027), \ (U+005C), and <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line-character">new-line-character</A> 

<A name=simple-escape-sequence>simple-escape-sequence</A>:: one of
    \' \" \\ \0 \a \b \f \n \r \t \v 

<A name=hexadecimal-escape-sequence>hexadecimal-escape-sequence</A>::
    \x <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#hex-digit">hex-digit</A><SUB>opt</SUB> 

<A name=string-literal>string-literal</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#regular-string-literal">regular-string-literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#verbatim-string-literal">verbatim-string-literal</A> 

<A name=regular-string-literal>regular-string-literal</A>::
    " <A href="http://www.jaggersoft.com/csharp_grammar.html#regular-string-literal-characters">regular-string-literal-characters</A><SUB>opt</SUB> " 

<A name=regular-string-literal-characters>regular-string-literal-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#regular-string-literal-character">regular-string-literal-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#regular-string-literal-characters">regular-string-literal-characters</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#regular-string-literal-character">regular-string-literal-character</A> 

<A name=regular-string-literal-character>regular-string-literal-character</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#single-regular-string-literal-character">single-regular-string-literal-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#simple-escape-sequence">simple-escape-sequence</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#hexadecimal-escape-sequence">hexadecimal-escape-sequence</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unicode-character-escape-sequence">unicode-character-escape-sequence</A> 

<A name=single-regular-string-literal-character>single-regular-string-literal-character</A>::
    Any character except " (U+0022), \ (U+005C), and <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line-character">new-line-character</A> 

<A name=verbatim-string-literal>verbatim-string-literal</A>::
    @" <A href="http://www.jaggersoft.com/csharp_grammar.html#verbatim-string-literal-characters">verbatim-string-literal-characters</A><SUB>opt</SUB> " 

<A name=verbatim-string-literal-characters>verbatim-string-literal-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#verbatim-string-literal-character">verbatim-string-literal-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#verbatim-string-literal-characters">verbatim-string-literal-characters</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#verbatim-string-literal-character">verbatim-string-literal-character</A> 

<A name=verbatim-string-literal-character>verbatim-string-literal-character</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#single-verbatim-string-literal-character">single-verbatim-string-literal-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#quote-escape-sequence">quote-escape-sequence</A> 

<A name=single-verbatim-string-literal-character>single-verbatim-string-literal-character</A>::
    Any character except " 

<A name=quote-escape-sequence>quote-escape-sequence</A>::
    "" 

<A name=null-literal>null-literal</A>::
    <SPAN class=keyword>null</SPAN> 

<HR SIZE=3><A name="1.9 Operators and punctuators">// A.1.9 Operators and punctuators</A>

<A name=operator-or-punctuator>operator-or-punctuator</A>:: one of
    { } [ ] ( ) . , : ; 
    + - * / % &amp; | ^ ! ~ 
    = &lt; &gt; ? ++ -- &amp;&amp; || &lt;&lt; &gt;&gt; 
    == != &lt;= &gt;= += -= *= /= %= &amp;= 
    |= ^= &lt;&lt;= &gt;&gt;= -&gt; 

<HR SIZE=3><A name="1.10 Pre-processing directives">// A.1.10 Pre-processing directives</A>

<A name=pp-directive>pp-directive</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-declaration">pp-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-conditional">pp-conditional</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-line">pp-line</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-diagnostic">pp-diagnostic</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-region">pp-region</A> 

<A name=pp-new-line>pp-new-line</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#single-line-comment">single-line-comment</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line">new-line</A> 

<A name=conditional-symbol>conditional-symbol</A>::
    Any <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier-or-keyword">identifier-or-keyword</A> except true or false 

<A name=pp-expression>pp-expression</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-or-expression">pp-or-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> 

<A name=pp-or-expression>pp-or-expression</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-and-expression">pp-and-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-or-expression">pp-or-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> || <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-and-expression">pp-and-expression</A> 

<A name=pp-and-expression>pp-and-expression</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-equality-expression">pp-equality-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-and-expression">pp-and-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> &amp;&amp; <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-equality-expression">pp-equality-expression</A> 

<A name=pp-equality-expression>pp-equality-expression</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-unary-expression">pp-unary-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-equality-expression">pp-equality-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> == <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-unary-expression">pp-unary-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-equality-expression">pp-equality-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> != <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-unary-expression">pp-unary-expression</A> 

<A name=pp-unary-expression>pp-unary-expression</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-primary-expression">pp-primary-expression</A> 
    ! <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-unary-expression">pp-unary-expression</A> 

<A name=pp-primary-expression>pp-primary-expression</A>::
    true 
    false 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-symbol">conditional-symbol</A> 
    ( <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-expression">pp-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> ) 

<A name=pp-declaration>pp-declaration</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> define <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-symbol">conditional-symbol</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> undef <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-symbol">conditional-symbol</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> 

<A name=pp-conditional>pp-conditional</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-if-section">pp-if-section</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-elif-sections">pp-elif-sections</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-else-section">pp-else-section</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-endif">pp-endif</A> 

<A name=pp-if-section>pp-if-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> if <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-expression">pp-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-section">conditional-section</A><SUB>opt</SUB> 

<A name=pp-elif-sections>pp-elif-sections</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-elif-section">pp-elif-section</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-elif-sections">pp-elif-sections</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-elif-section">pp-elif-section</A> 

<A name=pp-elif-section>pp-elif-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> elif <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-expression">pp-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-section">conditional-section</A><SUB>opt</SUB> 

<A name=pp-else-section>pp-else-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> else <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-section">conditional-section</A><SUB>opt</SUB> 

<A name=pp-endif>pp-endif</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> endif <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> 

<A name=conditional-section>conditional-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-section">input-section</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#skipped-section">skipped-section</A> 

<A name=skipped-section>skipped-section</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#skipped-section-part">skipped-section-part</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#skipped-section">skipped-section</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#skipped-section-part">skipped-section-part</A> 

<A name=skipped-section-part>skipped-section-part</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#skipped-characters">skipped-characters</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line">new-line</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-directive">pp-directive</A> 

<A name=skipped-characters>skipped-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#not-number-sign">not-number-sign</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#input-characters">input-characters</A><SUB>opt</SUB> 

<A name=not-number-sign>not-number-sign</A>::
    Any <A href="http://www.jaggersoft.com/csharp_grammar.html#input-character">input-character</A> except # 

<A name=pp-line>pp-line</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> line <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#line-indicator">line-indicator</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-new-line">pp-new-line</A> 

<A name=line-indicator>line-indicator</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#file-name">file-name</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#decimal-digits">decimal-digits</A> 
    default 

<A name=file-name>file-name</A>::
    " <A href="http://www.jaggersoft.com/csharp_grammar.html#file-name-characters">file-name-characters</A> " 

<A name=file-name-characters>file-name-characters</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#file-name-character">file-name-character</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#file-name-characters">file-name-characters</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#file-name-character">file-name-character</A> 

<A name=file-name-character>file-name-character</A>::
    Any character except " (U+0022), and <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line">new-line</A> 

<A name=pp-diagnostic>pp-diagnostic</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> error <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-message">pp-message</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> warning <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-message">pp-message</A> 

<A name=pp-message>pp-message</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#input-characters">input-characters</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#new-line">new-line</A> 

<A name=pp-region>pp-region</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-start-region">pp-start-region</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-section">conditional-section</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-end-region">pp-end-region</A> 

<A name=pp-start-region>pp-start-region</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> region <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-message">pp-message</A> 

<A name=pp-end-region>pp-end-region</A>::
    <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> # <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> endregion <A href="http://www.jaggersoft.com/csharp_grammar.html#whitespace">whitespace</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#pp-message">pp-message</A> 

<HR SIZE=3><A name="2 Syntactic grammar">// A.2 Syntactic grammar</A>

<HR SIZE=3><A name="2.1 Basic concepts">// A.2.1 Basic concepts</A>

<A name=compilation-unit>compilation-unit</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#using-directives">using-directives</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attributes">global-attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-member-declarations">namespace-member-declarations</A><SUB>opt</SUB> 

<A name=namespace-name>namespace-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-or-type-name">namespace-or-type-name</A> 

<A name=type-name>type-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-or-type-name">namespace-or-type-name</A> 

<A name=namespace-or-type-name>namespace-or-type-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-or-type-name">namespace-or-type-name</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<HR SIZE=3><A name="2.2 Types">// A.2.2 Types</A>

<A name=type>type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#value-type">value-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#reference-type">reference-type</A> 

<A name=value-type>value-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-type">struct-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-type">enum-type</A> 

<A name=struct-type>struct-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-name">type-name</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#simple-type">simple-type</A> 

<A name=simple-type>simple-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#numeric-type">numeric-type</A> 
    <SPAN class=keyword>bool</SPAN> 

<A name=numeric-type>numeric-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#integral-type">integral-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#floating-point-type">floating-point-type</A> 
    <SPAN class=keyword>decimal</SPAN> 

<A name=integral-type>integral-type</A>:
    <SPAN class=keyword>sbyte</SPAN> 
    <SPAN class=keyword>byte</SPAN> 
    <SPAN class=keyword>short</SPAN> 
    <SPAN class=keyword>ushort</SPAN> 
    <SPAN class=keyword>int</SPAN> 
    <SPAN class=keyword>uint</SPAN> 
    <SPAN class=keyword>long</SPAN> 
    <SPAN class=keyword>ulong</SPAN> 
    <SPAN class=keyword>char</SPAN> 

<A name=floating-point-type>floating-point-type</A>:
    <SPAN class=keyword>float</SPAN> 
    <SPAN class=keyword>double</SPAN> 

<A name=enum-type>enum-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-name">type-name</A> 

<A name=reference-type>reference-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#class-type">class-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type">interface-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#array-type">array-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-type">delegate-type</A> 

<A name=class-type>class-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-name">type-name</A> 
    <SPAN class=keyword>object</SPAN> 
    <SPAN class=keyword>string</SPAN> 

<A name=interface-type>interface-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-name">type-name</A> 

<A name=array-type>array-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#non-array-type">non-array-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifiers">rank-specifiers</A> 

<A name=non-array-type>non-array-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> 

<A name=rank-specifiers>rank-specifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifier">rank-specifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifiers">rank-specifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifier">rank-specifier</A> 

<A name=rank-specifier>rank-specifier</A>:
    [ <A href="http://www.jaggersoft.com/csharp_grammar.html#dim-separators">dim-separators</A><SUB>opt</SUB> ] 

<A name=dim-separators>dim-separators</A>:
    , 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#dim-separators">dim-separators</A> , 

<A name=delegate-type>delegate-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-name">type-name</A> 

<HR SIZE=3><A name="2.3 Variables">// A.2.3 Variables</A>

<A name=variable-reference>variable-reference</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<HR SIZE=3><A name="2.4 Expressions">// A.2.4 Expressions</A>

<A name=argument-list>argument-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#argument">argument</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#argument-list">argument-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#argument">argument</A> 

<A name=argument>argument</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 
    <SPAN class=keyword>ref</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-reference">variable-reference</A> 
    <SPAN class=keyword>out</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-reference">variable-reference</A> 

<A name=primary-expression>primary-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#array-creation-expression">array-creation-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-no-array-creation-expression">primary-no-array-creation-expression</A> 

<A name=primary-no-array-creation-expression>primary-no-array-creation-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#literal">literal</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#simple-name">simple-name</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#member-access">member-access</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#parenthesized-expression">parenthesized-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#invocation-expression">invocation-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#element-access">element-access</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#this-access">this-access</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#base-access">base-access</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#post-increment-expression">post-increment-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#post-decrement-expression">post-decrement-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#object-creation-expression">object-creation-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-creation-expression">delegate-creation-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#typeof-expression">typeof-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#checked-expression">checked-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unchecked-expression">unchecked-expression</A> 

<A name=simple-name>simple-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=parenthesized-expression>parenthesized-expression</A>:
    ( <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) 

<A name=member-access>member-access</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-expression">primary-expression</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#predefined-type">predefined-type</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=predefined-type>predefined-type</A>: one of
    <SPAN class=keyword>bool</SPAN> <SPAN class=keyword>byte</SPAN> <SPAN class=keyword>char</SPAN> <SPAN class=keyword>decimal</SPAN> <SPAN class=keyword>double</SPAN> <SPAN class=keyword>float</SPAN> <SPAN class=keyword>int</SPAN> <SPAN class=keyword>long</SPAN> 
    <SPAN class=keyword>object</SPAN> <SPAN class=keyword>sbyte</SPAN> <SPAN class=keyword>short</SPAN> <SPAN class=keyword>string</SPAN> <SPAN class=keyword>uint</SPAN> <SPAN class=keyword>ulong</SPAN> <SPAN class=keyword>ushort</SPAN> 

<A name=invocation-expression>invocation-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-expression">primary-expression</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#argument-list">argument-list</A><SUB>opt</SUB> ) 

<A name=element-access>element-access</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-no-array-creation-expression">primary-no-array-creation-expression</A> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#expression-list">expression-list</A> ] 

<A name=expression-list>expression-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression-list">expression-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=this-access>this-access</A>:
    <SPAN class=keyword>this</SPAN> 

<A name=base-access>base-access</A>:
    <SPAN class=keyword>base</SPAN> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <SPAN class=keyword>base</SPAN> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#expression-list">expression-list</A> ] 

<A name=post-increment-expression>post-increment-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-expression">primary-expression</A> ++ 

<A name=post-decrement-expression>post-decrement-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-expression">primary-expression</A> -- 

<A name=object-creation-expression>object-creation-expression</A>:
    <SPAN class=keyword>new</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#argument-list">argument-list</A><SUB>opt</SUB> ) 

<A name=array-creation-expression>array-creation-expression</A>:
    <SPAN class=keyword>new</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#non-array-type">non-array-type</A> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#expression-list">expression-list</A> ] <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifiers">rank-specifiers</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#array-initializer">array-initializer</A><SUB>opt</SUB> 
    <SPAN class=keyword>new</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#array-type">array-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#array-initializer">array-initializer</A> 

<A name=delegate-creation-expression>delegate-creation-expression</A>:
    <SPAN class=keyword>new</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-type">delegate-type</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) 

<A name=typeof-expression>typeof-expression</A>:
    <SPAN class=keyword>typeof</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> ) 
    <SPAN class=keyword>typeof</SPAN> ( <SPAN class=keyword>void</SPAN> ) 

<A name=checked-expression>checked-expression</A>:
    <SPAN class=keyword>checked</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) 

<A name=unchecked-expression>unchecked-expression</A>:
    <SPAN class=keyword>unchecked</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) 

<A name=unary-expression>unary-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-expression">primary-expression</A> 
    + <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    - <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    ! <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    ~ <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pre-increment-expression">pre-increment-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pre-decrement-expression">pre-decrement-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#cast-expression">cast-expression</A> 

<A name=pre-increment-expression>pre-increment-expression</A>:
    ++ <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 

<A name=pre-decrement-expression>pre-decrement-expression</A>:
    -- <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 

<A name=cast-expression>cast-expression</A>:
    ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 

<A name=multiplicative-expression>multiplicative-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#multiplicative-expression">multiplicative-expression</A> * <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#multiplicative-expression">multiplicative-expression</A> / <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#multiplicative-expression">multiplicative-expression</A> % <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 

<A name=additive-expression>additive-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#multiplicative-expression">multiplicative-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#additive-expression">additive-expression</A> + <A href="http://www.jaggersoft.com/csharp_grammar.html#multiplicative-expression">multiplicative-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#additive-expression">additive-expression</A> - <A href="http://www.jaggersoft.com/csharp_grammar.html#multiplicative-expression">multiplicative-expression</A> 

<A name=shift-expression>shift-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#additive-expression">additive-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> &lt;&lt; <A href="http://www.jaggersoft.com/csharp_grammar.html#additive-expression">additive-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> &gt;&gt; <A href="http://www.jaggersoft.com/csharp_grammar.html#additive-expression">additive-expression</A> 

<A name=relational-expression>relational-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> &lt; <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> &gt; <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> &lt;= <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> &gt;= <A href="http://www.jaggersoft.com/csharp_grammar.html#shift-expression">shift-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> <SPAN class=keyword>is</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> <SPAN class=keyword>as</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> 

<A name=equality-expression>equality-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#equality-expression">equality-expression</A> == <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#equality-expression">equality-expression</A> != <A href="http://www.jaggersoft.com/csharp_grammar.html#relational-expression">relational-expression</A> 

<A name=and-expression>and-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#equality-expression">equality-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#and-expression">and-expression</A> &amp; <A href="http://www.jaggersoft.com/csharp_grammar.html#equality-expression">equality-expression</A> 

<A name=exclusive-or-expression>exclusive-or-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#and-expression">and-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#exclusive-or-expression">exclusive-or-expression</A> ^ <A href="http://www.jaggersoft.com/csharp_grammar.html#and-expression">and-expression</A> 

<A name=inclusive-or-expression>inclusive-or-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#exclusive-or-expression">exclusive-or-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#inclusive-or-expression">inclusive-or-expression</A> | <A href="http://www.jaggersoft.com/csharp_grammar.html#exclusive-or-expression">exclusive-or-expression</A> 

<A name=conditional-and-expression>conditional-and-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#inclusive-or-expression">inclusive-or-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-and-expression">conditional-and-expression</A> &amp;&amp; <A href="http://www.jaggersoft.com/csharp_grammar.html#inclusive-or-expression">inclusive-or-expression</A> 

<A name=conditional-or-expression>conditional-or-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-and-expression">conditional-and-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-or-expression">conditional-or-expression</A> || <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-and-expression">conditional-and-expression</A> 

<A name=conditional-expression>conditional-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-or-expression">conditional-or-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-or-expression">conditional-or-expression</A> ? <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> : <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=assignment>assignment</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#assignment-operator">assignment-operator</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=assignment-operator>assignment-operator</A>: one of
    = += -= *= /= %= &amp;= |= ^= &lt;&lt;= &gt;&gt;= 

<A name=expression>expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conditional-expression">conditional-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#assignment">assignment</A> 

<A name=constant-expression>constant-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=boolean-expression>boolean-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<HR SIZE=3><A name="2.5 Statements">// A.2.5 Statements</A>

<A name=statement>statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#labeled-statement">labeled-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#declaration-statement">declaration-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=embedded-statement>embedded-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#empty-statement">empty-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression-statement">expression-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#selection-statement">selection-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#iteration-statement">iteration-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#jump-statement">jump-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#try-statement">try-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#checked-statement">checked-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unchecked-statement">unchecked-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#lock-statement">lock-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#using-statement">using-statement</A> 

<A name=block>block</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-list">statement-list</A><SUB>opt</SUB> } 

<A name=statement-list>statement-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement">statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-list">statement-list</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#statement">statement</A> 

<A name=empty-statement>empty-statement</A>:
    ; 

<A name=labeled-statement>labeled-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> : <A href="http://www.jaggersoft.com/csharp_grammar.html#statement">statement</A> 

<A name=declaration-statement>declaration-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declaration">local-variable-declaration</A> ; 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#local-constant-declaration">local-constant-declaration</A> ; 

<A name=local-variable-declaration>local-variable-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declarators">local-variable-declarators</A> 

<A name=local-variable-declarators>local-variable-declarators</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declarator">local-variable-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declarators">local-variable-declarators</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declarator">local-variable-declarator</A> 

<A name=local-variable-declarator>local-variable-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-initializer">local-variable-initializer</A> 

<A name=local-variable-initializer>local-variable-initializer</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#array-initializer">array-initializer</A> 

<A name=local-constant-declaration>local-constant-declaration</A>:
    <SPAN class=keyword>const</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarators">constant-declarators</A> 

<A name=constant-declarators>constant-declarators</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarator">constant-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarators">constant-declarators</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarator">constant-declarator</A> 

<A name=constant-declarator>constant-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-expression">constant-expression</A> 

<A name=expression-statement>expression-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-expression">statement-expression</A> ; 

<A name=statement-expression>statement-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#invocation-expression">invocation-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#object-creation-expression">object-creation-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#assignment">assignment</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#post-increment-expression">post-increment-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#post-decrement-expression">post-decrement-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pre-increment-expression">pre-increment-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pre-decrement-expression">pre-decrement-expression</A> 

<A name=selection-statement>selection-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#if-statement">if-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-statement">switch-statement</A> 

<A name=if-statement>if-statement</A>:
    <SPAN class=keyword>if</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#boolean-expression">boolean-expression</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 
    <SPAN class=keyword>if</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#boolean-expression">boolean-expression</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> <SPAN class=keyword>else</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=boolean-expression>boolean-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=switch-statement>switch-statement</A>:
    <SPAN class=keyword>switch</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-block">switch-block</A> 

<A name=switch-block>switch-block</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-sections">switch-sections</A><SUB>opt</SUB> } 

<A name=switch-sections>switch-sections</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-section">switch-section</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-sections">switch-sections</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-section">switch-section</A> 

<A name=switch-section>switch-section</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-labels">switch-labels</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-list">statement-list</A> 

<A name=switch-labels>switch-labels</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-label">switch-label</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-labels">switch-labels</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#switch-label">switch-label</A> 

<A name=switch-label>switch-label</A>:
    <SPAN class=keyword>case</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-expression">constant-expression</A> : 
    <SPAN class=keyword>default</SPAN> : 

<A name=iteration-statement>iteration-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#while-statement">while-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#do-statement">do-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#for-statement">for-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#foreach-statement">foreach-statement</A> 

<A name=while-statement>while-statement</A>:
    <SPAN class=keyword>while</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#boolean-expression">boolean-expression</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=do-statement>do-statement</A>:
    <SPAN class=keyword>do</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> <SPAN class=keyword>while</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#boolean-expression">boolean-expression</A> ) ; 

<A name=for-statement>for-statement</A>:
    <SPAN class=keyword>for</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#for-initializer">for-initializer</A><SUB>opt</SUB> ; <A href="http://www.jaggersoft.com/csharp_grammar.html#for-condition">for-condition</A><SUB>opt</SUB> ; <A href="http://www.jaggersoft.com/csharp_grammar.html#for-iterator">for-iterator</A><SUB>opt</SUB> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=for-initializer>for-initializer</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declaration">local-variable-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-expression-list">statement-expression-list</A> 

<A name=for-condition>for-condition</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#boolean-expression">boolean-expression</A> 

<A name=for-iterator>for-iterator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-expression-list">statement-expression-list</A> 

<A name=statement-expression-list>statement-expression-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-expression">statement-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-expression-list">statement-expression-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#statement-expression">statement-expression</A> 

<A name=foreach-statement>foreach-statement</A>:
    <SPAN class=keyword>foreach</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> <SPAN class=keyword>in</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=jump-statement>jump-statement</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#break-statement">break-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#continue-statement">continue-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#goto-statement">goto-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#return-statement">return-statement</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#throw-statement">throw-statement</A> 

<A name=break-statement>break-statement</A>:
    <SPAN class=keyword>break</SPAN> ; 

<A name=continue-statement>continue-statement</A>:
    <SPAN class=keyword>continue</SPAN> ; 

<A name=goto-statement>goto-statement</A>:
    <SPAN class=keyword>goto</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ; 
    <SPAN class=keyword>goto</SPAN> <SPAN class=keyword>case</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-expression">constant-expression</A> ; 
    <SPAN class=keyword>goto</SPAN> <SPAN class=keyword>default</SPAN> ; 

<A name=return-statement>return-statement</A>:
    <SPAN class=keyword>return</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A><SUB>opt</SUB> ; 

<A name=throw-statement>throw-statement</A>:
    <SPAN class=keyword>throw</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A><SUB>opt</SUB> ; 

<A name=try-statement>try-statement</A>:
    <SPAN class=keyword>try</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#catch-clauses">catch-clauses</A> 
    <SPAN class=keyword>try</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#finally-clause">finally-clause</A> 
    <SPAN class=keyword>try</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#catch-clauses">catch-clauses</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#finally-clause">finally-clause</A> 

<A name=catch-clauses>catch-clauses</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#specific-catch-clauses">specific-catch-clauses</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#general-catch-clause">general-catch-clause</A><SUB>opt</SUB> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#specific-catch-clauses">specific-catch-clauses</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#general-catch-clause">general-catch-clause</A> 

<A name=specific-catch-clauses>specific-catch-clauses</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#specific-catch-clause">specific-catch-clause</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#specific-catch-clauses">specific-catch-clauses</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#specific-catch-clause">specific-catch-clause</A> 

<A name=specific-catch-clause>specific-catch-clause</A>:
    <SPAN class=keyword>catch</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#class-type">class-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A><SUB>opt</SUB> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=general-catch-clause>general-catch-clause</A>:
    <SPAN class=keyword>catch</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=finally-clause>finally-clause</A>:
    <SPAN class=keyword>finally</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=checked-statement>checked-statement</A>:
    <SPAN class=keyword>checked</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=unchecked-statement>unchecked-statement</A>:
    <SPAN class=keyword>unchecked</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=lock-statement>lock-statement</A>:
    <SPAN class=keyword>lock</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=using-statement>using-statement</A>:
    <SPAN class=keyword>using</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#resource-acquisition">resource-acquisition</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=resource-acquisition>resource-acquisition</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#local-variable-declaration">local-variable-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=namespace-declaration>namespace-declaration</A>:
    <SPAN class=keyword>namespace</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#qualified-identifier">qualified-identifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-body">namespace-body</A> ;<SUB>opt</SUB> 

<A name=qualified-identifier>qualified-identifier</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#qualified-identifier">qualified-identifier</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=namespace-body>namespace-body</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#using-directives">using-directives</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-member-declarations">namespace-member-declarations</A><SUB>opt</SUB> } 

<A name=using-directives>using-directives</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#using-directive">using-directive</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#using-directives">using-directives</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#using-directive">using-directive</A> 

<A name=using-directive>using-directive</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#using-alias-directive">using-alias-directive</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#using-namespace-directive">using-namespace-directive</A> 

<A name=using-alias-directive>using-alias-directive</A>:
    <SPAN class=keyword>using</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-or-type-name">namespace-or-type-name</A> ; 

<A name=using-namespace-directive>using-namespace-directive</A>:
    <SPAN class=keyword>using</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-name">namespace-name</A> ; 

<A name=namespace-member-declarations>namespace-member-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-member-declaration">namespace-member-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-member-declarations">namespace-member-declarations</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-member-declaration">namespace-member-declaration</A> 

<A name=namespace-member-declaration>namespace-member-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#namespace-declaration">namespace-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-declaration">type-declaration</A> 

<A name=type-declaration>type-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#class-declaration">class-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-declaration">struct-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-declaration">interface-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-declaration">enum-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-declaration">delegate-declaration</A> 

<HR SIZE=3><A name="2.6 Classes">// A.2.6 Classes</A>

<A name=class-declaration>class-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#class-modifiers">class-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>class</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#class-base">class-base</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#class-body">class-body</A> ;<SUB>opt</SUB> 

<A name=class-modifiers>class-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#class-modifier">class-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#class-modifiers">class-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#class-modifier">class-modifier</A> 

<A name=class-modifier>class-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>abstract</SPAN> 
    <SPAN class=keyword>sealed</SPAN> 

<A name=class-base>class-base</A>:
    : <A href="http://www.jaggersoft.com/csharp_grammar.html#class-type">class-type</A> 
    : <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type-list">interface-type-list</A> 
    : <A href="http://www.jaggersoft.com/csharp_grammar.html#class-type">class-type</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type-list">interface-type-list</A> 

<A name=interface-type-list>interface-type-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type">interface-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type-list">interface-type-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type">interface-type</A> 

<A name=class-body>class-body</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#class-member-declarations">class-member-declarations</A><SUB>opt</SUB> } 

<A name=class-member-declarations>class-member-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#class-member-declaration">class-member-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#class-member-declarations">class-member-declarations</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#class-member-declaration">class-member-declaration</A> 

<A name=class-member-declaration>class-member-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declaration">constant-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#field-declaration">field-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#method-declaration">method-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#property-declaration">property-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#event-declaration">event-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-declaration">indexer-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-declaration">operator-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-declaration">constructor-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#destructor-declaration">destructor-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#static-constructor-declaration">static-constructor-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-declaration">type-declaration</A> 

<A name=constant-declaration>constant-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-modifiers">constant-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>const</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarators">constant-declarators</A> ; 

<A name=constant-modifiers>constant-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-modifier">constant-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-modifiers">constant-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-modifier">constant-modifier</A> 

<A name=constant-modifier>constant-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 

<A name=constant-declarators>constant-declarators</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarator">constant-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarators">constant-declarators</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declarator">constant-declarator</A> 

<A name=constant-declarator>constant-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-expression">constant-expression</A> 

<A name=field-declaration>field-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#field-modifiers">field-modifiers</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-declarators">variable-declarators</A> ; 

<A name=field-modifiers>field-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#field-modifier">field-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#field-modifiers">field-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#field-modifier">field-modifier</A> 

<A name=field-modifier>field-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>readonly</SPAN> 
    <SPAN class=keyword>volatile</SPAN> 

<A name=variable-declarators>variable-declarators</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-declarator">variable-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-declarators">variable-declarators</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-declarator">variable-declarator</A> 

<A name=variable-declarator>variable-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-initializer">variable-initializer</A> 

<A name=variable-initializer>variable-initializer</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#array-initializer">array-initializer</A> 

<A name=method-declaration>method-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#method-header">method-header</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#method-body">method-body</A> 

<A name=method-header>method-header</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#method-modifiers">method-modifiers</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#return-type">return-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#member-name">member-name</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A><SUB>opt</SUB> ) 

<A name=method-modifiers>method-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#method-modifier">method-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#method-modifiers">method-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#method-modifier">method-modifier</A> 

<A name=method-modifier>method-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>virtual</SPAN> 
    <SPAN class=keyword>sealed</SPAN> 
    <SPAN class=keyword>override</SPAN> 
    <SPAN class=keyword>abstract</SPAN> 
    <SPAN class=keyword>extern</SPAN> 

<A name=return-type>return-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> 
    <SPAN class=keyword>void</SPAN> 

<A name=member-name>member-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type">interface-type</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=method-body>method-body</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    ; 

<A name=formal-parameter-list>formal-parameter-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-parameters">fixed-parameters</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-parameters">fixed-parameters</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#parameter-array">parameter-array</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#parameter-array">parameter-array</A> 

<A name=fixed-parameters>fixed-parameters</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-parameter">fixed-parameter</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-parameters">fixed-parameters</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-parameter">fixed-parameter</A> 

<A name=fixed-parameter>fixed-parameter</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#parameter-modifier">parameter-modifier</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=parameter-modifier>parameter-modifier</A>:
    <SPAN class=keyword>ref</SPAN> 
    <SPAN class=keyword>out</SPAN> 

<A name=parameter-array>parameter-array</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>params</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#array-type">array-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=property-declaration>property-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#property-modifiers">property-modifiers</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#member-name">member-name</A> { <A href="http://www.jaggersoft.com/csharp_grammar.html#accessor-declarations">accessor-declarations</A> } 

<A name=property-modifiers>property-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#property-modifier">property-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#property-modifiers">property-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#property-modifier">property-modifier</A> 

<A name=property-modifier>property-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>virtual</SPAN> 
    <SPAN class=keyword>sealed</SPAN> 
    <SPAN class=keyword>override</SPAN> 
    <SPAN class=keyword>abstract</SPAN> 
    <SPAN class=keyword>extern</SPAN> 

<A name=member-name>member-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type">interface-type</A> . <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=accessor-declarations>accessor-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#get-accessor-declaration">get-accessor-declaration</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#set-accessor-declaration">set-accessor-declaration</A><SUB>opt</SUB> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#set-accessor-declaration">set-accessor-declaration</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#get-accessor-declaration">get-accessor-declaration</A><SUB>opt</SUB> 

<A name=get-accessor-declaration>get-accessor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> get <A href="http://www.jaggersoft.com/csharp_grammar.html#accessor-body">accessor-body</A> 

<A name=set-accessor-declaration>set-accessor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> set <A href="http://www.jaggersoft.com/csharp_grammar.html#accessor-body">accessor-body</A> 

<A name=accessor-body>accessor-body</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    ; 

<A name=event-declaration>event-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#event-modifiers">event-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>event</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-declarators">variable-declarators</A> ; 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#event-modifiers">event-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>event</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#member-name">member-name</A> { <A href="http://www.jaggersoft.com/csharp_grammar.html#event-accessor-declarations">event-accessor-declarations</A> } 

<A name=event-modifiers>event-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#event-modifier">event-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#event-modifiers">event-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#event-modifier">event-modifier</A> 

<A name=event-modifier>event-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>virtual</SPAN> 
    <SPAN class=keyword>sealed</SPAN> 
    <SPAN class=keyword>override</SPAN> 
    <SPAN class=keyword>abstract</SPAN> 
    <SPAN class=keyword>extern</SPAN> 

<A name=event-accessor-declarations>event-accessor-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#add-accessor-declaration">add-accessor-declaration</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#remove-accessor-declaration">remove-accessor-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#remove-accessor-declaration">remove-accessor-declaration</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#add-accessor-declaration">add-accessor-declaration</A> 

<A name=add-accessor-declaration>add-accessor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> add <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=remove-accessor-declaration>remove-accessor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> remove <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=indexer-declaration>indexer-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-modifiers">indexer-modifiers</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-declarator">indexer-declarator</A> { <A href="http://www.jaggersoft.com/csharp_grammar.html#accessor-declarations">accessor-declarations</A> } 

<A name=indexer-modifiers>indexer-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-modifier">indexer-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-modifiers">indexer-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-modifier">indexer-modifier</A> 

<A name=indexer-modifier>indexer-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>virtual</SPAN> 
    <SPAN class=keyword>sealed</SPAN> 
    <SPAN class=keyword>override</SPAN> 
    <SPAN class=keyword>abstract</SPAN> 
    <SPAN class=keyword>extern</SPAN> 

<A name=indexer-declarator>indexer-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <SPAN class=keyword>this</SPAN> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A> ] 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type">interface-type</A> . <SPAN class=keyword>this</SPAN> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A> ] 

<A name=operator-declaration>operator-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-modifiers">operator-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-declarator">operator-declarator</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-body">operator-body</A> 

<A name=operator-modifiers>operator-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-modifier">operator-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-modifiers">operator-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-modifier">operator-modifier</A> 

<A name=operator-modifier>operator-modifier</A>:
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>extern</SPAN> 

<A name=operator-declarator>operator-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-operator-declarator">unary-operator-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#binary-operator-declarator">binary-operator-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#conversion-operator-declarator">conversion-operator-declarator</A> 

<A name=unary-operator-declarator>unary-operator-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <SPAN class=keyword>operator</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#overloadable-unary-operator">overloadable-unary-operator</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ) 

<A name=overloadable-unary-operator>overloadable-unary-operator</A>: one of
    + - ! ~ ++ -- <SPAN class=keyword>true</SPAN> <SPAN class=keyword>false</SPAN> 

<A name=binary-operator-declarator>binary-operator-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <SPAN class=keyword>operator</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#overloadable-binary-operator">overloadable-binary-operator</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ) 

<A name=overloadable-binary-operator>overloadable-binary-operator</A>: one of
    + - * / % &amp; | ^ &lt;&lt; &gt;&gt; == != &gt; &lt; &gt;= &lt;= 

<A name=conversion-operator-declarator>conversion-operator-declarator</A>: 
    <SPAN class=keyword>implicit</SPAN> <SPAN class=keyword>operator</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ) 
    <SPAN class=keyword>explicit</SPAN> <SPAN class=keyword>operator</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ) 

<A name=operator-body>operator-body</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    ; 

<A name=constructor-declaration>constructor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-modifiers">constructor-modifiers</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-declarator">constructor-declarator</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-body">constructor-body</A> 

<A name=constructor-modifiers>constructor-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-modifier">constructor-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-modifiers">constructor-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-modifier">constructor-modifier</A> 

<A name=constructor-modifier>constructor-modifier</A>:
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 
    <SPAN class=keyword>extern</SPAN> 

<A name=constructor-declarator>constructor-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A><SUB>opt</SUB> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-initializer">constructor-initializer</A><SUB>opt</SUB> 

<A name=constructor-initializer>constructor-initializer</A>:
    : <SPAN class=keyword>base</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#argument-list">argument-list</A><SUB>opt</SUB> ) 
    : <SPAN class=keyword>this</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#argument-list">argument-list</A><SUB>opt</SUB> ) 

<A name=constructor-body>constructor-body</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    ; 

<A name=static-constructor-declaration>static-constructor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#static-constructor-modifiers">static-constructor-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( ) <A href="http://www.jaggersoft.com/csharp_grammar.html#static-constructor-body">static-constructor-body</A> 

<A name=static-constructor-modifiers>static-constructor-modifiers</A>:
    <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>static</SPAN> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> 

<A name=static-constructor-body>static-constructor-body</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    ; 

<A name=destructor-declaration>destructor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> ~ <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( ) <A href="http://www.jaggersoft.com/csharp_grammar.html#destructor-body">destructor-body</A> 

<A name=destructor-body>destructor-body</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 
    ; 

<HR SIZE=3><A name="2.7 Structs">// A.2.7 Structs</A>

<A name=struct-declaration>struct-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-modifiers">struct-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>struct</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-interfaces">struct-interfaces</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-body">struct-body</A> ;<SUB>opt</SUB> 

<A name=struct-modifiers>struct-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-modifier">struct-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-modifiers">struct-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-modifier">struct-modifier</A> 

<A name=struct-modifier>struct-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 

<A name=struct-interfaces>struct-interfaces</A>:
    : <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type-list">interface-type-list</A> 

<A name=struct-body>struct-body</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-member-declarations">struct-member-declarations</A><SUB>opt</SUB> } 

<A name=struct-member-declarations>struct-member-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-member-declaration">struct-member-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-member-declarations">struct-member-declarations</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#struct-member-declaration">struct-member-declaration</A> 

<A name=struct-member-declaration>struct-member-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-declaration">constant-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#field-declaration">field-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#method-declaration">method-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#property-declaration">property-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#event-declaration">event-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#indexer-declaration">indexer-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#operator-declaration">operator-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#constructor-declaration">constructor-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#static-constructor-declaration">static-constructor-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-declaration">type-declaration</A> 

<HR SIZE=3><A name="2.8 Arrays">// A.2.8 Arrays</A>

<A name=array-type>array-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#non-array-type">non-array-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifiers">rank-specifiers</A> 

<A name=non-array-type>non-array-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> 

<A name=rank-specifiers>rank-specifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifier">rank-specifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifiers">rank-specifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#rank-specifier">rank-specifier</A> 

<A name=rank-specifier>rank-specifier</A>:
    [ <A href="http://www.jaggersoft.com/csharp_grammar.html#dim-separators">dim-separators</A><SUB>opt</SUB> ] 

<A name=dim-separators>dim-separators</A>:
    , 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#dim-separators">dim-separators</A> , 

<A name=array-initializer>array-initializer</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-initializer-list">variable-initializer-list</A><SUB>opt</SUB> } 
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-initializer-list">variable-initializer-list</A> , } 

<A name=variable-initializer-list>variable-initializer-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-initializer">variable-initializer</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-initializer-list">variable-initializer-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-initializer">variable-initializer</A> 

<A name=variable-initializer>variable-initializer</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#array-initializer">array-initializer</A> 

<HR SIZE=3><A name="2.9 Interfaces">// A.2.9 Interfaces</A>

<A name=interface-declaration>interface-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-modifiers">interface-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>interface</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-base">interface-base</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-body">interface-body</A> ;<SUB>opt</SUB> 

<A name=interface-modifiers>interface-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-modifier">interface-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-modifiers">interface-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-modifier">interface-modifier</A> 

<A name=interface-modifier>interface-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 

<A name=interface-base>interface-base</A>:
    : <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-type-list">interface-type-list</A> 

<A name=interface-body>interface-body</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-member-declarations">interface-member-declarations</A><SUB>opt</SUB> } 

<A name=interface-member-declarations>interface-member-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-member-declaration">interface-member-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-member-declarations">interface-member-declarations</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-member-declaration">interface-member-declaration</A> 

<A name=interface-member-declaration>interface-member-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-method-declaration">interface-method-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-property-declaration">interface-property-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-event-declaration">interface-event-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-indexer-declaration">interface-indexer-declaration</A> 

<A name=interface-method-declaration>interface-method-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>new</SPAN><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#return-type">return-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A><SUB>opt</SUB> ) ; 

<A name=interface-property-declaration>interface-property-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>new</SPAN><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> { <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-accessors">interface-accessors</A> } 

<A name=interface-accessors>interface-accessors</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> get ; 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> set ; 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> get ; <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> set ; 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> set ; <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> get ; 

<A name=interface-event-declaration>interface-event-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>new</SPAN><SUB>opt</SUB> <SPAN class=keyword>event</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ; 

<A name=interface-indexer-declaration>interface-indexer-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>new</SPAN><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> <SPAN class=keyword>this</SPAN> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A> ] { <A href="http://www.jaggersoft.com/csharp_grammar.html#interface-accessors">interface-accessors</A> } 

<HR SIZE=3><A name="2.10 Enums">// A.2.10 Enums</A>

<A name=enum-declaration>enum-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-modifiers">enum-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>enum</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-base">enum-base</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-body">enum-body</A> ;<SUB>opt</SUB> 

<A name=enum-base>enum-base</A>:
    : <A href="http://www.jaggersoft.com/csharp_grammar.html#integral-type">integral-type</A> 

<A name=enum-body>enum-body</A>:
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-member-declarations">enum-member-declarations</A><SUB>opt</SUB> } 
    { <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-member-declarations">enum-member-declarations</A> , } 

<A name=enum-modifiers>enum-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-modifier">enum-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-modifiers">enum-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-modifier">enum-modifier</A> 

<A name=enum-modifier>enum-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 

<A name=enum-member-declarations>enum-member-declarations</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-member-declaration">enum-member-declaration</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-member-declarations">enum-member-declarations</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#enum-member-declaration">enum-member-declaration</A> 

<A name=enum-member-declaration>enum-member-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#constant-expression">constant-expression</A> 

<HR SIZE=3><A name="2.11 Delegates">// A.2.11 Delegates</A>

<A name=delegate-declaration>delegate-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-modifiers">delegate-modifiers</A><SUB>opt</SUB> <SPAN class=keyword>delegate</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#return-type">return-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#formal-parameter-list">formal-parameter-list</A><SUB>opt</SUB> ) ; 

<A name=delegate-modifiers>delegate-modifiers</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-modifier">delegate-modifier</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-modifiers">delegate-modifiers</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#delegate-modifier">delegate-modifier</A> 

<A name=delegate-modifier>delegate-modifier</A>:
    <SPAN class=keyword>new</SPAN> 
    <SPAN class=keyword>public</SPAN> 
    <SPAN class=keyword>protected</SPAN> 
    <SPAN class=keyword>internal</SPAN> 
    <SPAN class=keyword>private</SPAN> 

<HR SIZE=3><A name="2.12 Attributes">// A.2.12 Attributes</A>

<A name=global-attributes>global-attributes</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-sections">global-attribute-sections</A> 

<A name=global-attribute-sections>global-attribute-sections</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-section">global-attribute-section</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-sections">global-attribute-sections</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-section">global-attribute-section</A> 

<A name=global-attribute-section>global-attribute-section</A>:
    [ <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-target-specifier">global-attribute-target-specifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-list">attribute-list</A> ] 
    [ <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-target-specifier">global-attribute-target-specifier</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-list">attribute-list</A> , ] 

<A name=global-attribute-target-specifier>global-attribute-target-specifier</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#global-attribute-target">global-attribute-target</A> : 

<A name=global-attribute-target>global-attribute-target</A>:
    assembly 

<A name=attributes>attributes</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-sections">attribute-sections</A> 

<A name=attribute-sections>attribute-sections</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-section">attribute-section</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-sections">attribute-sections</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-section">attribute-section</A> 

<A name=attribute-section>attribute-section</A>:
    [ <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-target-specifier">attribute-target-specifier</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-list">attribute-list</A> ] 
    [ <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-target-specifier">attribute-target-specifier</A><SUB>opt</SUB> <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-list">attribute-list</A> , ] 

<A name=attribute-target-specifier>attribute-target-specifier</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-target">attribute-target</A> : 

<A name=attribute-target>attribute-target</A>:
    field 
    event 
    method 
    module 
    param 
    property 
    return 
    type 

<A name=attribute-list>attribute-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute">attribute</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-list">attribute-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute">attribute</A> 

<A name=attribute>attribute</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-name">attribute-name</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-arguments">attribute-arguments</A><SUB>opt</SUB> 

<A name=attribute-name>attribute-name</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type-name">type-name</A> 

<A name=attribute-arguments>attribute-arguments</A>:
    ( <A href="http://www.jaggersoft.com/csharp_grammar.html#positional-argument-list">positional-argument-list</A><SUB>opt</SUB> ) 
    ( <A href="http://www.jaggersoft.com/csharp_grammar.html#positional-argument-list">positional-argument-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#named-argument-list">named-argument-list</A> ) 
    ( <A href="http://www.jaggersoft.com/csharp_grammar.html#named-argument-list">named-argument-list</A> ) 

<A name=positional-argument-list>positional-argument-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#positional-argument">positional-argument</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#positional-argument-list">positional-argument-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#positional-argument">positional-argument</A> 

<A name=positional-argument>positional-argument</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-argument-expression">attribute-argument-expression</A> 

<A name=named-argument-list>named-argument-list</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#named-argument">named-argument</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#named-argument-list">named-argument-list</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#named-argument">named-argument</A> 

<A name=named-argument>named-argument</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#attribute-argument-expression">attribute-argument-expression</A> 

<A name=attribute-argument-expression>attribute-argument-expression</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<HR SIZE=3><A name="3 Grammar extensions for unsafe code">// A.3 Grammar extensions for unsafe code</A>

<A name=class-modifier>class-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=struct-modifier>struct-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=interface-modifier>interface-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=delegate-modifier>delegate-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=field-modifier>field-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=method-modifier>method-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=property-modifier>property-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=event-modifier>event-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=indexer-modifier>indexer-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=operator-modifier>operator-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=constructor-modifier>constructor-modifier</A>:
    ... 
    <SPAN class=keyword>unsafe</SPAN> 

<A name=destructor-declaration>destructor-declaration</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> ~ <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( ) <A href="http://www.jaggersoft.com/csharp_grammar.html#destructor-body">destructor-body</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#attributes">attributes</A><SUB>opt</SUB> <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> ~ <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> ( ) <A href="http://www.jaggersoft.com/csharp_grammar.html#destructor-body">destructor-body</A> 

<A name=static-constructor-modifiers>static-constructor-modifiers</A>:
    <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> <SPAN class=keyword>static</SPAN> 
    <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> <SPAN class=keyword>static</SPAN> <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> 
    <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> <SPAN class=keyword>static</SPAN> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> 
    <SPAN class=keyword>static</SPAN> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> 
    <SPAN class=keyword>static</SPAN> <SPAN class=keyword>unsafe</SPAN><SUB>opt</SUB> <SPAN class=keyword>extern</SPAN><SUB>opt</SUB> 

<A name=embedded-statement>embedded-statement</A>:
    ... 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unsafe-statement">unsafe-statement</A> 

<A name=unsafe-statement>unsafe-statement</A>:
    <SPAN class=keyword>unsafe</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#block">block</A> 

<A name=type>type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#value-type">value-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#reference-type">reference-type</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pointer-type">pointer-type</A> 

<A name=pointer-type>pointer-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#unmanaged-type">unmanaged-type</A> * 
    <SPAN class=keyword>void</SPAN> * 

<A name=unmanaged-type>unmanaged-type</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#type">type</A> 

<A name=primary-no-array-creation-expression>primary-no-array-creation-expression</A>:
    ... 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pointer-member-access">pointer-member-access</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pointer-element-access">pointer-element-access</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#sizeof-expression">sizeof-expression</A> 

<A name=unary-expression>unary-expression</A>:
    ... 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#pointer-indirection-expression">pointer-indirection-expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#addressof-expression">addressof-expression</A> 

<A name=pointer-indirection-expression>pointer-indirection-expression</A>:
    * <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 

<A name=pointer-member-access>pointer-member-access</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-expression">primary-expression</A> -&gt; <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> 

<A name=pointer-element-access>pointer-element-access</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#primary-no-array-creation-expression">primary-no-array-creation-expression</A> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ] 

<A name=addressof-expression>addressof-expression</A>:
    &amp; <A href="http://www.jaggersoft.com/csharp_grammar.html#unary-expression">unary-expression</A> 

<A name=sizeof-expression>sizeof-expression</A>:
    <SPAN class=keyword>sizeof</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#unmanaged-type">unmanaged-type</A> ) 

<A name=embedded-statement>embedded-statement</A>:
    ... 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-statement">fixed-statement</A> 

<A name=fixed-statement>fixed-statement</A>:
    <SPAN class=keyword>fixed</SPAN> ( <A href="http://www.jaggersoft.com/csharp_grammar.html#pointer-type">pointer-type</A> <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-pointer-declarators">fixed-pointer-declarators</A> ) <A href="http://www.jaggersoft.com/csharp_grammar.html#embedded-statement">embedded-statement</A> 

<A name=fixed-pointer-declarators>fixed-pointer-declarators</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-pointer-declarator">fixed-pointer-declarator</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-pointer-declarators">fixed-pointer-declarators</A> , <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-pointer-declarator">fixed-pointer-declarator</A> 

<A name=fixed-pointer-declarator>fixed-pointer-declarator</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#identifier">identifier</A> = <A href="http://www.jaggersoft.com/csharp_grammar.html#fixed-pointer-initializer">fixed-pointer-initializer</A> 

<A name=fixed-pointer-initializer>fixed-pointer-initializer</A>:
    &amp; <A href="http://www.jaggersoft.com/csharp_grammar.html#variable-reference">variable-reference</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 

<A name=local-variable-initializer>local-variable-initializer</A>:
    <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#array-initializer">array-initializer</A> 
    <A href="http://www.jaggersoft.com/csharp_grammar.html#stackalloc-initializer">stackalloc-initializer</A> 

<A name=stackalloc-initializer>stackalloc-initializer</A>:
    <SPAN class=keyword>stackalloc</SPAN> <A href="http://www.jaggersoft.com/csharp_grammar.html#unmanaged-type">unmanaged-type</A> [ <A href="http://www.jaggersoft.com/csharp_grammar.html#expression">expression</A> ] 
</PRE>
<H1 class=grammar>&nbsp;</H1>
<TABLE>
  <TBODY>
  <TR>
    <TD>
      <TABLE align=right bgColor=darkblue border=5>
        <TBODY>
        <TR bgColor=darkblue>
          <TD><FONT face=Arial,sans-serif color=yellow size=7><B>&nbsp;{ JSL 
            }&nbsp;</B> </FONT></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD><FONT face=Arial,sans-serif color=darkblue size=2><A 
      href="http://www.jaggersoft.com/">Jagger Software Ltd</A> </FONT></TD></TR>
  <TR>
    <TD><FONT face=Arial,sans-serif color=darkblue size=2><B>Company # 
      4070126</B> </FONT></TD></TR>
  <TR>
    <TD><FONT face=Arial,sans-serif color=darkblue size=2><B>VAT # 762 5213 
      42</B> </FONT></TD></TR></TBODY></TABLE></BODY></HTML>
